//The contents of this file are subject to the Mozilla Public License Version 1.1
//(the "License"); you may not use this file except in compliance with the 
//License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
//
//Software distributed under the License is distributed on an "AS IS" basis,
//WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
//for the specific language governing rights and
//limitations under the License.
//
//The Original Code is "The Columba Project"
//
//The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
//Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003. 
//
//All Rights Reserved.

package org.columba.mail.config;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.columba.core.config.DefaultXmlConfig;
import org.columba.core.xml.XmlElement;

import com.deruan.hotcore.base.common.bean.MailAccountBean;

public class AccountXmlConfig extends DefaultXmlConfig {
    private AccountList list;

    public AccountXmlConfig(File file) {
        super(file);
    }
    
    public AccountList getAccountList() {
        if (list == null) {
            list = new AccountList(getRoot().getElement("/accountlist"));
        }

        return list;
    }
    
    //I addddd 
    public void addAccountList(List accountList)
    {
    	Iterator iterator = accountList.iterator();
    	while (iterator.hasNext()) 
    	{
			MailAccountBean element = (MailAccountBean) iterator.next();
	        XmlElement xml = new XmlElement("account");
	        xml.addAttribute("name", element.getAccountName());
	        xml.addAttribute("uid", element.getId().toString());
	        XmlElement child = xml.addSubElement("identity");
	        child.addAttribute("name",element.getAccountName());
	        child.addAttribute("address",element.getEmailAddress());
	        child.addAttribute("organisation",element.getOrganisasion());
	        child.addAttribute("attach_signature", "false");
	        //pop server
	        child = xml.addSubElement("popserver");
	        child.addAttribute("port", element.getPopPort().toString());
	        if(element.getIsPopDefault()) child.addAttribute("use_default_account", "true");
	        else child.addAttribute("use_default_account","false" );
	        child.addAttribute("user",element.getPopUser());
	        child.addAttribute("host", element.getPopHost().toString());
	        child.addAttribute("login_method", "USER");
	        //smt server
	        child = xml.addSubElement("smtpserver");
	        child.addAttribute("port", element.getSmtPort().toString());
	        child.addAttribute("user",element.getSmtUser());
	        if(element.getIsSmtDefault()) child.addAttribute("use_default_account", "true");
	        else child.addAttribute("use_default_account","false" );
	        child.addAttribute("host", element.getSmtHost().toString());
	        child.addAttribute("login_method", "USER");
	        //
	        child = xml.addSubElement("specialfolders");
	        child.addAttribute("inbox", "101");
	        child.addAttribute("sent", "104");
	        child.addAttribute("drafts", "102");
	        child.addAttribute("templates", "107");
			AccountItem item = new AccountItem(xml);
			getAccountList().add(item);
		}
    }
}
